A Framework for Reverse Engineering Large C++ Code Bases

نویسندگان

  • Alexandru Telea
  • Heorhiy Byelas
  • Lucian Voinea
چکیده

When assessing the quality and maintainability of large C++ code bases, tools are needed for extracting several facts from the source code, such as: architecture, structure, code smells, and quality metrics. Moreover, these facts should be presented in such ways so that one can correlate them and find outliers and anomalies. We present SolidFX, an integrated reverse-engineering environment (IRE) for C and C++. SolidFX was specifically designed to support code parsing, fact extraction, metric computation, and interactive visual analysis of the results in much the same way IDEs and design tools offer for the forward engineering pipeline. In the design of SolidFX, we adapted and extended several existing code analysis and data visualization techniques to render them scalable for handling code bases of millions of lines. In this paper, we detail several design decisions taken to construct SolidFX. We also illustrate the application of our tool and our lessons learnt in using it in several types of analyses of real-world industrial code bases, including maintainability and modularity assessments, detection of coding patterns, and complexity analyses.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Architecting an open system for querying large C and C++ code bases

Static code analysis offers a number of tools for the assessment of complexity, maintainability, modularity and safety of industry-size source code bases. Typically, such scenarios include three main phases. First, the code is parsed and ’raw’ data is extracted and saved, such as syntax trees, possibly annotated with semantic (type) information. In the second phase, the raw data is queried to c...

متن کامل

Software Visualisation using C++ Lenses

Program comprehension is one of the most frequent and essential, yet difficult and costly, software engineering activities to undertake. It is required each time a program is corrected, reused, migrated, reengineered, inspected or enhanced. The complexities of comprehension may be attributable to a number of factors such as the complexity and size of the code base, tightly coupled interfaces, p...

متن کامل

Text Mining Through Semi Automatic Semantic Annotation

The Web is the greatest information source in human history. Unfortunately, mining knowledge out of this source is a laborious and errorprone task. Many researchers believe that a solution to the problem can be founded on semantic annotations that need to be inserted in web-based documents and guide information extraction and knowledge mining. In this paper, we further elaborate a tool-supporte...

متن کامل

Calculating Metrics from Large C++ Programs

In this work we present a new method called compiler wrapping for extracting information from the source code of large software systems written in the C++ language. This new method can be used without having to modify the analyzed source code in any way. With the extracted information we can calculate different object oriented metrics and characterize the analyzed system. For source code analys...

متن کامل

Software Visualisation using C++ Lenses

C++ Lens is an innovative visualisation technique and associated tool, that assists maintainers comprehend C++ source code. The primary role of the C++ Lens technique and tool is to visualise the interface relationships existing between C++ classes and to signify the relative importance of these relationships. The technique innovatively combines, via the definition of lenses, elements of revers...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Electr. Notes Theor. Comput. Sci.

دوره 233  شماره 

صفحات  -

تاریخ انتشار 2009